import random

from pynput import keyboard
from playsound import playsound
from threading import Thread

soundList = ['sound/1.mp3','sound/2.mp3']
count = 0
def onRelease(key):
    """
    这个函数，就是在用户释放键盘按键的时候，就会被调用到。
    这个函数不是自己主动调用的，而是吧这个函数交给了Listener
    由listener 在用户释放的时候自动调用。
    像这样的不是咱们自已主动调用，而是交给别人，在合适的时机进行调用，这样的函数，叫做“回调函数”（calLbackfunction）
    :param key:用户按下了哪个键
    :return:
    """
    print(key)
    global count
    count += 1
    if count % 10 == 0:
        # 只有按下10次之后，才会播放音频!
        i = random.randint(0,len(soundList)-1)
        # 此处的播放音频，消耗时间比较多，可能会 引起输入的卡顿（不流畅
        # 可以创建一个线程，在线程里面播放音频
        # playsound(soundList[i])

        t =Thread(target=playsound,args=(soundList[i]))
        t.start()
# 当我们创建好listener 之后，用户的键盘动作就会被捕捉到
#  希望捕获之后，能执行一些代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()